A Built In Self Test (BIST), such as Power On Self Test, identifies defective memory words in a magnetic disk-drive or a semiconductor memory that fail the fault thresholds of the BIST test. Generally, after the completion of the BIST, two results are possible. The BIST declares the memory word useable without any limitations or BIST permanently invalidates or disables the memory word. Thus, bad sectors on the magnetic disk drive are permanently invalidated or disabled and the bad sector information is typically communicated to a user during the BOOT process of a computer.
However, if the amount of errors detected with particular memory word does not exceed the fault thresholds programmed in the BIST test, then the memory word having potential defects continues to be used. Thus, a memory word that possesses a persistent hardware fault that repeatedly causes errors but at an infrequent interval may be tolerated and degrades the data integrity for the system.
Similarly, cache lines that fail during operation outside of a test facility are typically not tracked or monitored in any way. A cache line with a persistent failure will degrade the data integrity of the system and may crash or shutdown the system. However, typically neither cache lines nor memory words are tracked to determine if an error at that location is found to be repetitive, and thus, indicate hard-defects that need to be eliminated.
Another prior technology is the Least Recently Used replacement policy implemented to replace data stored in a cache. A processing unit associated with a cache may use a Least Recently Used replacement algorithm to store the most recently used data in the cache while discarding the oldest data. A rule based algorithm is used in the cache system that selects a cache line to be flushed if the cache line has been used, such as read or written to, less recently than any other cache line. During a flush the modified data stored in the cache line that belongs to a first transaction is written out to main memory so that a second transaction can use the cache line. Thus, a replacement algorithm determines which entry in an associative cache to flush to main memory when it is desired to cache a new block of data. The “least recently used” algorithm flushes the block that has not been accessed for the longest time.
While the invention is subject to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will herein be described in detail. The invention should be understood to not be limited to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.